
// 一、定义所有的菜单数据

const allMenus:any[] = [
    {
      id:"0-0",
      key: '/Admin/Home',
      label: '首页',
    },
    {
        id:"0-1",
        key:"0-1",
        label:"系统管理",
        children:[
              {
                id:"0-1-0",
                key: '/Admin/Dept',
                label: '部门管理',
              },
              {
                id:"0-1-1",
                key: '/Admin/User',      
                label: '用户管理',
              },
              {
                id:"0-1-2",
                key: '/Admin/Role',      
                label: '角色管理',
              },
        ]
    },
    {
        id:"0-2",
        key:"0-2",
        label:"业务管理",
        children:[
            {
                id:"0-2-0",
                key: '/Admin/YuYue',      
                label: '预约管理',
              },
              {
                id:"0-2-1",
                key: '/Admin/HuanZhe',      
                label: '患者管理',
              },
              {
                id:"0-2-2",
                key: "/Admin/YuYue",      
                label: '医护管理',
              }
        ]
    }
  ]


// 二、根据当前用户的权限，得到当前用户的菜单数据

export const getCurrentMenus=()=>{
  
  //1、获取当前用户的权限：checkedKeys。
  const checkedKeys = JSON.parse(sessionStorage.getItem("checkedKeys") as string);
  // ["0-1-0","0-2-1","0-1-2"]

  //2、循环所有菜单数据，过滤出当前用户的菜单数据。
   
  const currMenus:any[] = [];

  // 2.1)、循环根级
  allMenus.forEach(item=>{
      // 判断根级是否在权限里 
      if(checkedKeys.includes(item.id)){

        currMenus.push({...item});

      }else{
        // 如果根级不在权限里，则需要判断子级。
        //      如果子级在权限里，就需要把父级也添加。
        //      如果子级不在权限里，那么，父级也不添加
        if(item.children){

          const sonMenus:any[] = [];
          // 2.2）、循环子级
          item.children.forEach((sonItem:any)=>{
            if(checkedKeys.includes(sonItem.id)){
              sonMenus.push({...sonItem});
            }
          })

          //如果有子级权限，那么添加父级。
          if(sonMenus.length>0){
            const parentItem = {...item};
            parentItem.children = sonMenus;
            currMenus.push(parentItem);
          }

        }
      }
  })

  console.log("currMenus",currMenus);

    return currMenus;

}